﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Windows.Forms;
using System.Data.Linq;
using QLTVNEW.Properties;
using DevComponents.DotNetBar;
namespace QLTVNEW
{
    public partial class frmTinhTrang : DevComponents.DotNetBar.Office2007Form
    {
        QLTVDataContext db = new QLTVDataContext();
        public frmTinhTrang()
        {
            InitializeComponent();
            DataLoadOptions dlo = new DataLoadOptions();
            dlo.LoadWith<TINHTRANG>(tt => tt.SACHes);
            db.LoadOptions = dlo;
      

        }
        #region 'Thành Phần'
        void txtReadOnly(bool a)
        {
            txtMa.ReadOnly = a;
            txtTen.ReadOnly = a;
        }

        void btnThem(bool a)
        {
            btnupdate.Enabled = a;
            btndel.Enabled = a;
        }

        void btnSua(bool a)
        {
            btninsert.Enabled = a;
            btndel.Enabled = a;
        }

        void ThemCancel()
        {
            btninsert.Image = Resources.Cancel;
            superTooltip1.SetSuperTooltip(btninsert, new SuperTooltipInfo("Huỷ Bỏ Thao Tác Thêm.", "", "", null, null, eTooltipColor.Lemon, true, true, new System.Drawing.Size(140, 21)));
        }
        void ThemOK()
        {
            btninsert.Image = Resources.add1_;
            superTooltip1.SetSuperTooltip(btninsert, new SuperTooltipInfo("Thêm Tình Trạng Sách.", "", "", null, null, eTooltipColor.Lemon, true, true, new System.Drawing.Size(120, 21)));
        }

        void SuaCancel()
        {
            btnupdate.Image = Resources.Cancel;
            superTooltip1.SetSuperTooltip(btnupdate, new SuperTooltipInfo("Huỷ Bỏ Thao Tác Sửa.", "", "", null, null, eTooltipColor.Lemon, true, true, new System.Drawing.Size(130, 21)));
        }

        void SuaOK()
        {
            btnupdate.Image = Resources.edit;
            superTooltip1.SetSuperTooltip(btnupdate, new SuperTooltipInfo("Sửa Tình Trạng Sách.", "", "", null, null, eTooltipColor.Lemon, true, true, new System.Drawing.Size(130, 21)));
        }

        void LoadGridView()
        {
            var query = from Ttr in db.TINHTRANGs select Ttr;
            GVW.DataSource = query;
        }
        #endregion
        private void frmTinhTrang_Load(object sender, EventArgs e)
        {
           
            txtReadOnly(true);
            LoadGridView();
            txtMa.Text = GVW.Rows[0].Cells[0].Value.ToString().Trim();
            txtTen.Text = GVW.Rows[0].Cells[1].Value.ToString().Trim();
        }

      

        private void btnclear_Click(object sender, EventArgs e)
        {
            foreach (Control ctr in groupBox1.Controls)
            {
                if (ctr is TextBox)
                {
                    ctr.Text = "";
                    
                    labelX1.Focus();
                }
            }
        }

        private void btninsert_Click(object sender, EventArgs e)
        {
            if (btnsave.Enabled == false)
            {
                txtReadOnly(false);
                txtMa.Focus();
                btnThem(false);
                ThemCancel();
                btnsave.Enabled = true;
            }
            else
            {
                txtReadOnly(true);
                btnThem(true);
                ThemOK();
                btnsave.Enabled = false;

            }
        }

        private void btnupdate_Click(object sender, EventArgs e)
        {
            if (btnsave.Enabled == false)
            {
                txtReadOnly(false);
                SuaCancel();
                btnSua(false);
                btnsave.Enabled = true;
                txtMa.Focus();
            }
            else
            {
                txtReadOnly(true);
                SuaOK();
                btnSua(true);
                btnsave.Enabled = false;
            }
        }

        private void btncancel_Click(object sender, EventArgs e)
        {
            this.AutoValidate = AutoValidate.Disable;
            this.Close();
        }

        private void frmTinhTrang_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.AutoValidate = AutoValidate.Disable;
        }

        private void btnsave_Click(object sender, EventArgs e)
        {
            if (btnupdate.Enabled==false)
            {
               if (txtMa.Text!="")
               {
               
                   TINHTRANG ttrs = db.TINHTRANGs.Where(t => t.MaTinhTrang == int.Parse(txtMa.Text)).Single<TINHTRANG>();
                   if (ttrs == null)
                   {
                       string err = "";
                       db.uspCRUDTINHTRANG('t', int.Parse(txtMa.Text), txtTen.Text, ref err);
                       db.SubmitChanges();
                       MessageBox.Show(err.ToString(), "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                       LoadGridView();
                       txtReadOnly(true);
                       btninsert.Image = Resources.add1_;
                       btnsave.Enabled = true;
                       btnThem(true);
                       ThemOK();
                   }
                   else
                       MessageBox.Show("Mã Tình Trạng Đã Tồn Tại", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
               }
               else
               {
                   MessageBox.Show("Chưa Nhập Mã Tình Trạng", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
               }
               
            }
            if (btninsert.Enabled==false)
            {
                if (txtMa.Text!="")
                {
                    TINHTRANG ttr = db.TINHTRANGs.Where(t => t.MaTinhTrang ==int.Parse(txtMa.Text)).SingleOrDefault<TINHTRANG>();
                    if (ttr!=null)
                    {
                        db.Connection.Open();
                        db.Transaction = db.Connection.BeginTransaction();
                        try
                        {
                            ttr.TenTinhTrang = txtTen.Text.Trim();
                            db.SubmitChanges();
                            db.Transaction.Commit();
                            MessageBox.Show("Sửa Thành Công","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
                            LoadGridView();
                        }
                        catch (System.Exception ex)
                        {
                            db.Transaction.Rollback();
                            MessageBox.Show(ex.Message,"Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                            
                        }
                        finally
                        {
                            if (db.Connection.State == ConnectionState.Open)
                                db.Connection.Close();
                            db.Transaction = null;
                            btnsave.Enabled = false;
                            txtReadOnly(true);
                            btnSua(true);
                            SuaOK();
                            btnupdate.Image = Resources.edit;
                        }
                    }
                }
                else
                    MessageBox.Show("Chưa Nhập Mã Tình Trạng", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        
            }
        }

        private void btndel_Click(object sender, EventArgs e)
        {
            if (txtMa.Text!="")
            {
                if (MessageBox.Show("Bạn Có Muốn Xóa Không ?","Thông Báo",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
                {
                    string err="";
                    db.uspCRUDTINHTRANG('x', int.Parse(txtMa.Text), txtTen.Text, ref err);
                    db.SubmitChanges();
                    MessageBox.Show(err.ToString(),"Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
                    LoadGridView();
                }
            }
            else
                MessageBox.Show("Chưa Nhập Mã Tình Trạng","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
          
        }
        int dong;
        private void GVW_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                dong = e.RowIndex;
                txtMa.Text = GVW.Rows[dong].Cells[0].Value.ToString().Trim();
                txtTen.Text = GVW.Rows[dong].Cells[1].Value.ToString().Trim();
            }
            catch 
            {
                return;
            }
        }

        private void txtMa_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "\\d+"))
            {
                MessageBox.Show("Bạn Chỉ Được Nhập Số", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                e.Handled = true;
            }
        }

        private void contextMenuStrip1_Click(object sender, EventArgs e)
        {

        }

        private void GVW_MouseDown(object sender, MouseEventArgs e)
        {
            DataGridView.HitTestInfo hit;
            if (e.Button==MouseButtons.Right)
            {
                hit = GVW.HitTest(e.X, e.Y);
                if (hit.Type==DataGridViewHitTestType.Cell)
                {
                    if (!((DataGridViewRow)(GVW.Rows[hit.RowIndex])).Selected)
                    {
                        GVW.ClearSelection();
                        ((DataGridViewRow)GVW.Rows[hit.RowIndex]).Selected = true;
                    }
                }
            }
        }
    }
}
